home *** CD-ROM | disk | FTP | other *** search
/ Collection of Internet / Collection of Internet.iso / faq / comp / linux / howto / xfree86 < prev   
Internet Message Format  |  1994-03-15  |  44KB

  1. Path: bloom-beacon.mit.edu!hookup!europa.eng.gtefsd.com!emory!news-feed-2.peachnet.edu!concert!bigblue.oit.unc.edu!sunSITE!mdw
  2. From: geyer@polyhymnia.iwr.uni-heidelberg.de (Helmut Geyer)
  3. Newsgroups: comp.os.linux.announce,comp.os.linux.help,comp.os.linux.admin,comp.windows.x.i386unix,comp.answers,news.answers
  4. Subject: Linux XFree86 HOWTO
  5. Followup-To: poster
  6. Date: 16 Mar 1994 05:29:20 GMT
  7. Organization: The University of North Carolina at Chapel Hill
  8. Lines: 826
  9. Approved: linux-announce@tc.cornell.edu (Matt Welsh)
  10. Message-ID: <2m65fg$4pg@bigblue.oit.unc.edu>
  11. NNTP-Posting-Host: calzone.oit.unc.edu
  12. Summary: HOWTO on installation of XFree86 for Linux
  13. Keywords: Linux, XWindows, XFree86
  14. Originator: mdw@sunSITE
  15. Xref: bloom-beacon.mit.edu comp.os.linux.announce:1957 comp.os.linux.help:26198 comp.os.linux.admin:5618 comp.windows.x.i386unix:8415 comp.answers:4187 news.answers:16456
  16.  
  17. Archive-name: linux/howto/XFree86
  18. Last-modified: 10 February 1994
  19.  
  20. $Id: XFree86-HOWTO,v 1.6 1994/02/08 00:00:00 geyer Rel geyer$
  21.  
  22. Comments or suggestions on this HOWTO are very welcome, i.e. if you feel that
  23. something is missing or something is obsolete or wrong, please let me know.
  24.  
  25. The Linux XFree86 HOWTO, version 1.6
  26. ------------------------------------------------------------------------------
  27. by Helmut Geyer (geyer@kalliope.iwr.uni-heidelberg.de) 
  28. with help from Dirk Hohndel (hohndel@informatik.uni-wuerzburg.de)
  29.            and David E. Wexelblat (dwex@aib.com)
  30.  
  31. This document describes how to obtain, install and configure XFree86[TM] 
  32. version 2.0 for Linux systems. XFree86 is an enhanced version of the X 
  33. Window System, version 11 release 5, with support for many versions of UN*X 
  34. running on Intel i386/486 platforms, including Linux. It support a great 
  35. amount of video hardware for these systems and includes many bugfixes beyond 
  36. the MIT standard release of X.
  37.  
  38. This document is intended to help Linux users install and configure XFree86
  39. v2.0, which was released on 31 October 1993. It is furthermore intended to
  40. answer some basic questions about X and programs using X.
  41.  
  42. Please read this file and the referenced documentation files BEFORE
  43. installing and starting XFree86. IF YOU ARE NOT CAREFUL, YOU MIGHT DAMAGE
  44. YOUR HARDWARE.
  45.  
  46. This file comes WITHOUT ANY WARRANTY OF FITNESS. If you damage anything
  47. following these informations, you are on your own. For a complete
  48. description of the features and the installation please look at the
  49. documentation files and manuals that come with XFree86 (residing in
  50. /usr/X386/lib/X11/etc and its subdirs as well as in /usr/X386/man).  The
  51. most important files will be pointed out to you in this HOWTO. Note that
  52. this HOWTO gives not complete information on setting up XFree86, but that
  53. you have to get the documentation files for XFree86 (from the file
  54. xf86-doc-2.0.tar.gz).
  55.  
  56. Other man pages from the stock X11R5 distribution can be found in
  57. xf86-man-2.0.tar.gz. These manfiles come as sources for the nroff program.
  58. To read them you will need a working man program as well as the groff
  59. package for formatting them. Note that it is often required to read
  60. manpages, so you should install the groff package anyway. (I think it is no
  61. good idea that in many distributions this package is considered optional).
  62.  
  63. New versions of this document will be posted to comp.os.linux.announce, as
  64. well as archived on sunsite.unc.edu:/pub/Linux/HOWTO.
  65.  
  66. Contents:
  67.  
  68.    0. Introduction - What are X11R5 and XFree86?
  69.    1. Supported Hardware
  70.    2. Where do I get XFree86 and what do I need to run it? 
  71.    3. Configuring XFree86
  72.    4. tinyX - a package for systems with low memory
  73.    5. X related packages
  74.    6. Compiling programs that use X
  75.    7. Programming in X
  76.    8. Finding Information on X on the net
  77. Appendix: Some Questions & Answers
  78.       Copying conditions & Trademarks
  79.  
  80. 0. Introduction - What are X11R5 and XFree86?
  81.  
  82.     X11R5 is a windowing system for UN*X like operating systems.  The X
  83.     Windowing System is issued by the MIT Consortium (look at the X(1)
  84.     manpage for more information) and is put under a very liberal copyright,
  85.     that allows any use of source code provided that the original copyright
  86.     notices are included.
  87.     As X is THE standard windowing system for UN*X operating systems, there
  88.     are a lot of applications using it (both free and commercial).
  89.  
  90.     XFree86 is a port of X11R5 that supports several versions of Intel-based
  91.     Unix and Unix-like operating systems.  The XFree86 servers are partly
  92.     derived from X386 1.2, which was the X server distributed with X11R5,
  93.     but many of them are newly developed. The accelerated servers that are
  94.     the most important change since XFree86-1.3 are completely new. This
  95.     release consists of many new features and performance improvements as
  96.     well as many bug fixes.  The release is available as source patches
  97.     against the MIT X11R5 code, as well as binary distributions for many
  98.     architectures.
  99.  
  100.     Note that while the source and installation trees retain the name 'X386'
  101.     name (for simplicity of maintenance of the source tree), there is no
  102.     connection between XFree86 and the commercial X386 product sold by SGCS.
  103.     The XFree86 Core Team maintains technical contacts with SGCS in an
  104.     effort to keep user-affecting changes to the workings of the products
  105.     from diverging too radically.  There is no direct involvement of either
  106.     group in the workings of the other.
  107.  
  108.     You will find more information on the XFree86-2.0 release and the
  109.     XFree86 project in the file README from the documentation tarfile.
  110.  
  111. 1. Supported Hardware
  112.  
  113.     As this is the most often asked question, this will be the first
  114.     section.  Currently XFree86 (Version 2.0) supports the following
  115.     chipsets in the XF86_SVGA server (note that it depends on the chipset
  116.     whether a card is working and not on the vendor, with Diamond notably
  117.     excluded, cf. the remark at the end of this paragraph):
  118.  
  119.     nonaccelerated chipsets:
  120.         Tseng ET3000, ET4000AX, ET4000/W32
  121.         Western Digital/Paradise PVGA1
  122.         Western Digital WD90C00, WD90C10, WD90C11, WD90C30
  123.         Genoa GVGA
  124.         Trident TVGA8800CS, TVGA8900B, TVGA8900C, TVGA8900CL, TVGA9000
  125.         ATI 28800-4, 28800-5, 28800-a
  126.         NCR 77C22, 77C22E
  127.         Cirrus Logic GLGD5420, CLGD5422, CLGD5424, CLGD6205, CLGD6215, 
  128.                      CLGD6225, CLGD6235
  129.         Compaq AVGA  (cf the question in the appendix)
  130.         OAK OTI067, OTI077
  131.     accelerated chipsets:
  132.         Cirrus CLGD5426, CLGD5428
  133.         Western Digital WD90C31
  134.  
  135.       NOTE that the WD90C33 chipset does NOT work with XFree86-2.0.
  136.     
  137.     These chipsets are all supported in 256 color (XF86_SVGA) and in
  138.     monochrome mode (XF86_Mono) with the exception of the ATI and Cirrus
  139.     chipsets, which are only supported in 256 color mode. Note that the
  140.     ET4000/W32 is only supported as a ET4000 clone and none of the
  141.     accelerated functions are used.
  142.     
  143.     The monochrome server also supports generic VGA cards (using 64k of the
  144.     video memory as a single bank), the Hercules card and the Hyundai
  145.     HGC-1280. Note that these drivers are not part of the XF86_Mono server
  146.     by default. If you want to use these, you have to reconfigure your
  147.     XF86_Mono server using the LinkKit (or, of course, the source
  148.     distribution - but the LinkKit will need less disk space and less 
  149.     compile time). See the Appendix for further information on using a
  150.     Hercules mono card.
  151.  
  152.     There is an (experimental) additional server that works on generic VGA
  153.     hardware: XF86_VGA16, a 16 color server.
  154.  
  155.     XFree86-2.0 supports the following accelerated chipsets with seperate
  156.     servers:
  157.  
  158.         S3  86C911, 86C924, 86C801, 86C805, 86C928 supported by 
  159.             the XF86_S3 server
  160.         ATI mach8   supported by the XF86_Mach8 server
  161.         ATI mach32  supported by the XF86_Mach32 server
  162.         IBM 8514/a and true clones supported by the XF86_8514 server
  163.  
  164.      No other chipsets are supported; not Weitek P9000, not TIGA, not
  165.      IIT AGX, not Microfield, not the new MGA chipset (as in the
  166.      Matrox card), etc.  Support for some of these will likely be
  167.      provided in future XFree86 releases.  TIGA will never be
  168.      supported, as it requires licensing materials from TI (and may
  169.      disallow source distributions); Microfield boards will never be
  170.      supported, as they use proprietary and undocumented custom microcode 
  171.      interfaces.
  172.  
  173.  
  174.     NOTE further: The following is a statement of the XFree86 Core Team
  175.          concerning graphic cards by Diamond:
  176.          
  177.         All Diamond cards are NOT supported by XFree86 even if they
  178.         have a supported chipset (with  the exception of the Cirrus
  179.         chipsets that have an internal clock generator). The reason
  180.         for this is that Diamond has changed  the mechanism used to
  181.         select  pixel   clock  frequencies, and  will only  release
  182.         programming information under  non-disclosure.   We are not
  183.         willing to do this (as it would mean  that source cannot be
  184.         provided).  We have had discussions with Diamond over this,
  185.         and they do not  intend to  change  this policy.  Hence  we
  186.         will do nothing  to support Diamond products  going forward
  187.         (i.e.  don't  send us a program  to run  set their clocks).
  188.         XFree86 DOES NOT SUPPORT  DIAMOND HARDWARE.  It is possible
  189.         to make some  of it work, but  we will not assist  in doing
  190.         this.
  191.  
  192.  
  193.     The author of this HOWTO does support this statement completely. If you
  194.     have read this and bought nevertheless a card from Diamond, you will
  195.     damage the idea of free software as Diamond does not support the efforts
  196.     of a free X11 server.
  197.  
  198.     However, if you are stuck with a card from Diamond, there is a
  199.     compilation of the needed things to get XFree86 running on some of these
  200.     cards. It is called the Diamond-FAQ and can be obtained from tsx-11 or
  201.     sunsite in the docs directories.
  202.  
  203.     Do not ask the XFree86 team about Diamond hardware.  You will simply
  204.     annoy them, and get no information.
  205.  
  206.     For some of these chipsets there are specific README files (to be found
  207.     in /usr/X386/lib/X11/etc). If there is one for the chipset you use, read
  208.     it!!  In these READMEs the specific options that can be used to
  209.     configure the server are explained.
  210.     
  211.     More information on the servers can be found in their manpages.
  212.  
  213.     Later more on configuring the servers.
  214.  
  215. 2. Where do I get XFree86 and what do I need to run it??
  216.  
  217.     This section is dedicated to the Linux binary distribution so all file
  218.     names and site names are for Linux only. If you read this file and are
  219.     not using Linux, you should get your hands on the announcement of
  220.     XFree86-2.0 for you OS. In it you will find all necessary information on
  221.     obtaining it.
  222.  
  223.     You can get the binary distribution of XFree86-2.0 for Linux via 
  224.     anonymous FTP from 
  225.       tsx-11.mit.edu:/pub/linux/packages/X11/XFree86-2.0
  226.       or
  227.        sunsite.unc.edu:/pub/Linux/X11/XFree86-2.0 
  228.     and all MIRRORS of these two.
  229.      
  230.     You can find an incomplete list of sites mirroring these in the
  231.     BBS-list that gets regularly posted to comp.os.linux.announce or can be
  232.     found on both sites in the docs directory.
  233.        
  234.     The distribution consists of several gzipped tarfiles (some are too big
  235.     to fit on one floppy disk, you may have to split them):
  236.  
  237.     XF86_8514.tar.gz      An accelerated server for cards using IBM8514 chips
  238.     XF86_Mach32.tar.gz    An accelerated server for cards using Mach32 chips
  239.     XF86_Mach8.tar.gz     An accelerated server for cards using Mach8 chips
  240.     XF86_Mono.tar.gz      A Monochrome server
  241.     XF86_S3.tar.gz        An accelerated server for cards using S3 chips
  242.     XF86_SVGA.tar.gz      An SVGA server (most chipsets use this)
  243.     XF86_VGA16.tar.gz     A server for 16 colour graphics modes
  244.     xf86-svr-2.0.tar.gz   All of the above servers
  245.     xf86-bin-2.0.tar.gz   Client programs
  246.     xf86-cfg-2.0.tar.gz   XDM configuration files and chooser
  247.     xf86-fnt-2.0.tar.gz   Fonts (all of them)
  248.     xf86-kit-2.0.tar.gz   Linkkit for building your own X servers
  249.     xf86-lib-2.0.tar.gz   Dynamic libraries, bitmaps and minimal fonts
  250.     xf86-man-2.0.tar.gz   Manual pages (both client + programmer)
  251.     xf86-pex-2.0.tar.gz   PEX libraries and sample clients
  252.     xf86-prg-2.0.tar.gz   Static libs, dynamic stubs, configs and
  253.                             include files
  254.     xf86-doc-2.0.tar.gz   Documentation and release notes for XFree86 2.0
  255.     xf86-doc2-2.0.tar.gz  This file contains the manpage for Xconfig that
  256.                             has mistakenly been left out of the -doc- file.
  257.  
  258.     You will need libc 4.4.1 or newer to run XFree86-2.0. For the
  259.     accelerated servers you need Linux 0.99pl13 or newer (a working complete
  260.     mmap is needed for these).
  261.  
  262.     The SVGA, VGA16 and Mono servers will work on Linux 0.99pl12 and newer.
  263.     Furthermore you will need to install David Engel's shared dynamic linker
  264.     ld.so version 1.3 or newer. You can find the most recent version on all
  265.     mirrors of tsx-11 in the /pub/linux/packages/GCC directory.
  266.  
  267.     You will need a main memory of at least 8 MB and a virtual memory of at
  268.     least 16 MB (i.e. main memory + swap). It is possible to run X on a 4 MB
  269.     machine if you take some precautions on memory usage (look at section 4,
  270.     where a package for low memory systems is described). Note that you
  271.     should nevertheless have 16 MB of virtual memory. (So if you have 4 megs
  272.     of physical RAM, and 12 megs of swap, you're okay.) It is recommended
  273.     that you have *at least* 8 megs of physical RAM, as swap is very slow.
  274.     With only 4 megs of physical RAM, performance will suffer greatly.
  275.  
  276.     If you want to run memory-hog programs from within X (as e.g. gcc) you
  277.     should at least have 16 MB of main memory and another 16MB of swap.
  278.  
  279.     You will need about 17 MB of disk space for the complete installation
  280.     without LinkKit, 21 MB with LinkKit. By deleting those servers that you
  281.     don't need and removing the LinkKit after linking your own server, you
  282.     can save several MB of diskspace. A more concise listing on the needed 
  283.     disk space and the contents of the distribution files can be found in the
  284.     release notes by Simon Cooper. These can be found in the 00README file
  285.     residing in the XFree86-2.0 directory.
  286.  
  287.     Before installing XFree86, you should make a backup of all files that
  288.     you changed. They may not be usable, but they still hold a lot of
  289.     information you might want to preserve. (This includes your old XConfig
  290.     files.)
  291.  
  292.     To install the binary distribution you have to do the following as root
  293.     in the / directory with all needed tarfiles from above.  To get all
  294.     permission right you should use umask 022.
  295.     
  296.     gzip -dc tarfilename | tar xvvof -
  297.  
  298.     WARNING: This will overwrite all files from an older XFree86 version, of
  299.     course not the Xconfig file (if you did not link it to Xconfig.sample,
  300.     which you should NOT do). In other words, ionly if Xconfig.sample is
  301.     linked to your Xconfig, it will be overwritten.
  302.  
  303.     After installing it, you will have to set it up correctly to match your
  304.     system. This is described in section 3.
  305.  
  306. 2.1 What do I do if I want to compile it myself?
  307.  
  308.     This is explained in the INSTALL, README and README.Linux files coming
  309.     with XFree86. You should do that, however, only if you want to have some
  310.     special changes to the standard distribution, as you will need a lot of
  311.     CPU time and disk space to do this. If you only want to change the
  312.     configuration of a server, you should use the Link Kit, as this is much
  313.     easier to handle and will not need that much resources by far.
  314.  
  315.     For adding drivers to the SVGA server you will only need the Link Kit.
  316.     The Link Kit comes with documentation on writing drivers for SVGA. You
  317.     can find it in the directory /usr/X386/lib/Server/VGADriverDoc.
  318.  
  319. 3. Configuring XFree86
  320.  
  321.     From version 2.0 on all documentation files for XFree86 are combined in
  322.     one tarfile, xf86-doc-2.0.tar.gz. You have to get this file and look
  323.     through those files to configure XFree86 correctly. The following steps
  324.     are intended as a guide to these files.
  325.  
  326.     There is a very good introduction to configuring XFree86 in the
  327.     README.Config coming with XFree86-2.0. Start there to configure XFree86
  328.     and follow the instructions step by step.
  329.  
  330.     Furthermore you MUST read the manpages for Xconfig, XFree86 and the
  331.     server you want to set up (one of XF86_SVGA, XF86_Mono, XF86_VGA16,
  332.     XF86_S3, XF86_Mach8, XF86_Mach32 or XF86_8514). Just look in section 1,
  333.     which server supports the chipset of your graphic card and use this.
  334.  
  335.     If you are not sure, which chipset your graphic card has (this should
  336.     only happen, if you do not have a manual for your card), you can try to
  337.     identify it by running SuperProbe, a graphic hardware detection program
  338.     that comes with XFree86-2.0. You should, however, rely on the
  339.     information of your manuals and not on that of SuperProbe (even if it is
  340.     in most cases correct).
  341.  
  342.     Note that if SuperProbe does not detect your chipset correctly, the
  343.     XFree86 servers will neither. Note further that SuperProbe detects far
  344.     more hardware than XFree86 servers support.
  345.  
  346.     There is a list of accelerated graphic cards that are reported to work
  347.     with XFree86-2.0 in the file AccelCards. Look through it to see, whether
  348.     your card is already in the database. While other boards not listed may
  349.     well work, The XFree86 team gives no assurances of that.
  350.  
  351.     If you were running XS3, you should take a look at README.XS3, as some 
  352.     things did change while incorporating the XS3 server into XFree86.
  353.  
  354.     Several people reported problems with the XFree86 configuration that
  355.     could be solved by changing the BIOS configuration of shadowing and 
  356.     cacheable areas. The reports which settings had to be changed in order
  357.     to get XFree86 working were partly contradicting, though. 
  358.     Due to this fact, I only want to mention that there might be problems
  359.     arising from BIOS setup. If you cannot get it working in spite of
  360.     having followed all hints in the documentation, you might want to 
  361.     fiddle with these settings.
  362.  
  363.     For configuring you will need the following information on your system:
  364.  
  365.     1. The specifications of your monitor (i.e. which vertical and horizontal
  366.        frequences can it handle and which video bandwidth has it). This is 
  367.        the most important thing of all as you can toast your monitor using 
  368.        incorrect video modes and you will need these specifications to check 
  369.        the modes.
  370.     2. You need the name of the chipset (confer the remarks above). Note
  371.        that there are some companies using "s3" as a synonym for "accelerated"
  372.        chipset, so this is often not true. Please check it out in your
  373.        manuals.
  374.     3. Amount of video memory supplied by your card (this is usually detected
  375.        Correctly, but it is better to have the exact number and compare it 
  376.        with the detected)
  377.     4. Which dot-clocks are available for your card, or is your dot-clock 
  378.        programmable. This is the hardest part for the graphic card setup.
  379.        How to obtain these is described in the README.config.
  380.          NOTE: there is a problem with the clock probing code for the 
  381.             WD90C3x chipsets. Please run the XFree86-1.3 server to probe
  382.             for the clocks and put these into your Xconfig file. Having
  383.             done that, you can use the XFree86-2.0 server.  
  384.          NOTE: If your RAMDAC can handle pixel clocks higher than 110MHz,
  385.             it is probably one of the more recent high-end RAMDACs. As
  386.             all of these (as far as it is known) use special features to 
  387.             make this possible, these RAMDACs should not be run at higher
  388.             clocks than 85 MHz. Support for such RAMDACs (at least for
  389.             some of them) will be in the next release of XFree86. If you 
  390.             drive your RAMDAC too high with the current code, you will fry
  391.             it. So if you have such a card, do not use clocks higher than
  392.             85MHz (simply by not putting modes using clocks higher than
  393.             that into the Xconfig file).
  394.     5. The protocol your mouse uses and the device it is connected to. The 
  395.        available mouse protocols are listed in the Xconfig manpage. You 
  396.        have to use the keyword according to the protocol your mouse uses
  397.        and not the manufacturer,... The standard names of the mouse 
  398.            devices for Linux are:
  399.        /dev/atibm for the ATI XL busmouse (NOTE: the ATI GU busmouse
  400.                                 is in fact a logitech busmouse)
  401.        /dev/logibm for the Logitech busmouse (NOTE: this uses the 
  402.                                 busmouse protocol, NOT the Logitech protocol)
  403.        /dev/inportbm for the microsoft busmouse
  404.        /dev/psaux for a ps/2 or quickport mouse
  405.        NOTE: these are the new device names (as of MAKEDEV 1.2). Some 
  406.        distributions and systems have different device names:
  407.             new       old               major    minor  device number
  408.           atibm:     bmouseatixl         10        3
  409.           logibm:    bmouselogitec       10        0
  410.           inportbm:  bmousems            10        2
  411.           psaux:     bmouseps2 or ps2aux 10        1
  412.        The other supported mice are serial mice and therefore connected
  413.        to one of the serial ports (named /dev/ttyS? or /dev/ttyS?? for Linux).
  414.  
  415.        For busmice it is sometimes not easy to see which device they are using.
  416.        Simply put all drivers for busmice into the kernel you use and look
  417.        at the startup messages. These will tell you, which busmouse has been 
  418.        detected. From these messages you can get the device name.
  419.  
  420.     So now procede as in README.Config. If your Monitor is not listed in the
  421.     modeDB.txt file, you should try one of the generic modes.  ENSURE THAT
  422.     THE SPECS OF THE MODES ARE WITHIN THE SPECS OF YOUR MONITOR.  If you
  423.     want to tune these modes or to compute a mode of your own, you MUST read
  424.     VideoModes.doc and follow the instructions there.  Before trying a mode,
  425.     compute the specs of this mode and again look if your monitor does
  426.     support it. Here is no further description of computing VideoModes,
  427.     as you should not do this without having read VideoModes.doc.
  428.  
  429.     WARNING: Do NOT EVER share Xconfig files with people  who do not have
  430.        EXACTLY the same Configuration (i.e. graphic card AND monitor). By
  431.        doing  this you could  toast your  monitor.  It isn't  so hard  to
  432.        figure out modes (that is, for  multisync monitors) and you surely
  433.        shouldn't ever use a mode that you  didn't check by yourself to be
  434.        within your  monitor's specs.  Even if  you have  exactly the same
  435.        setup  you should check      all  modes yourself   before   trying
  436.        them. There are  many people who  run their hardware out of  specs
  437.        which may not damage their hardware but could yours.
  438.  
  439.  
  440. 3.1 Configuring the keyboard for non-US-layout
  441.  
  442.     If you do not change the standard settings, the server will start up
  443.     with an US-american keyboard layout regardless which keyboard layout was
  444.     configured for the kernel. If you want to have a different layout, look
  445.     at the xmodmap(1) manpage. There are example Xmodmaps available at
  446.     sunsite.unc.edu:/pub/Linux/X11/misc for several languages and keyboard
  447.     layouts.
  448.     Note that you might need to define a map for several special keys (as 
  449.     e. g. Meta, Compose, ..) in the Xconfig file to make complete use of
  450.     these keymaps. For information on the keyboard capabilities of
  451.     XFree86 read the XFree86kbd(1) manpage. Furthermore you should 
  452.  
  453. 4.  tinyX - a XFree86 based package for low memory systems
  454.  
  455.     If you have not enough memory to run the stock XFree86 distribution, you
  456.     might try to get this package. It is based on XFree86, so the difficult
  457.     parts of the configuration (setting up the Xconfig file) are
  458.     identical. To run it you need at least 4 MB RAM and another 8 MB swap
  459.     space.  There are now several tinyX versions, one for each of the
  460.     different servers supplied by XFree86-2.0. Please read the above
  461.     description of the servers to get the right version of tinyX. These
  462.     packages are named like
  463.  
  464.         tinyX-YYY-2.0.tar.gz, where YYY denotes the server name (without
  465.                                leading XF86_)
  466.  
  467.     You can find tinyX on sunsite.unc.edu in the /pub/Linux/X11 hierarchy.
  468.     Please look in your neighbourhood for a Mirror of it (cf. the BBS-list
  469.     that can be found on most linux sites).  You untar it as root from
  470.     /. After this you have to setup a Xconfig file as described in section
  471.     3.  The documentation and READMEs for tinyX as well as most of the
  472.     XFree86-2.0 documentation files can be found in /readmes. Read the
  473.     XFree86 documentation files _before_ setting up a Xconfig file as they
  474.     are required for this.
  475.  
  476.     The tinyX documentation includes a lot of useful information on memory
  477.     saving techniques. You should follow at least some of these suggestions,
  478.     as running X while swapping constantly is no fun at all :-(.  If you are
  479.     running out of memory your system will lock up completely (in many cases
  480.     the only way out is to turn off power or to make a hard reset - both is
  481.     very dangerous for your filesystem). So read these files before starting
  482.     X so that this does not happen.
  483.  
  484.     As tinyX does not include all documentation available with XFree86-2.0, 
  485.     you might notice that you are pointed to a file that is not included.
  486.     In this case you must get the rest of the documentation files (and
  487.     perhaps the manpages, too) from any XFree86-2.0 site (cf. 2.). If you 
  488.     have enough disk space for that, this is highly recommended anyway.
  489.     
  490.     Note that XFree86 specific manpages (as the Server manpages,...)
  491.     are not in the *-man-* but in the *-doc* files.
  492.  
  493.  
  494. 5.  X - related packages
  495.  
  496.     There are a lot of packages that are related to X. I mention two here,
  497.     because they have a great influence on the look-and-feel of X.
  498.  
  499.     - The xview3L5.1.tar.gz package 
  500.  
  501.       This package is a port of SUN(TM)'s xview3.2 package by Kenneth
  502.       Osterberg to Linux. It includes the xview toolkit, a set of extensions
  503.       to X. It will give you the look-and-feel of the Open Look(TM)
  504.       extension to X (many will know that from Open Windows(TM) from SUN).
  505.  
  506.       To install it, untar the tarfile as root in some directory (e.g.
  507.       /usr/src), read the documentation that comes with it (most important
  508.       the README and run the INSTALL script. Note that you need about 25MB
  509.       free disk space to install it completely (with examples). This is
  510.       partly due to the fact, that for some time all files are twice on the
  511.       disk. After running the INSTALL script and removing the xview3L5.1
  512.       directory you will need about 11 MB (including all examples). If you
  513.       do not want to install the examples , you will need about 9 MB. If you
  514.       do not want to compile or program any program that uses xview, you can
  515.       spare another 2.5 MB.
  516.  
  517.       For running Xview you will need at least 8 MB of RAM, better 16 MB. To
  518.       run xview with XFree86-2.0 you should get the ld.so package version
  519.       1.3 or newer.
  520.  
  521.     - There is a port of Motif(TM) to Linux.
  522.      
  523.       This is commercial software, so you will have to pay for it. You can
  524.       find an advertisement from Metrolink (the company that provided the
  525.       port to Linux) on tsx-11:/pub/linux/advertisements.
  526.  
  527.     These packages provide different window managers than the standard twm
  528.     that comes with XFree86. There are several further window managers that
  529.     you can find on sunsite:/pub/Linux/X11/Window-managers.  All these use
  530.     different setups, so you have to read the documentation on the window
  531.     managers to set them up correctly.
  532.     
  533.     There are a lot of programs available for X. Look through the
  534.     /pub/Linux/X11 hierarchy at sunsite.unc.edu or at the usr.X11
  535.     directories of /pub/linux/binaries and /pub/linux/sources at
  536.     tsx-11.mit.edu for many of them.
  537.  
  538.  
  539. 6.  Compiling Programs that use X
  540.  
  541.     If you have the source code for a program that uses X11, usually it will
  542.     be shipped with an Imakefile instead of a Makefile. What to do now?
  543.     
  544.     Run "xmkmf" in the directory that containes the Imakefile. If there is a
  545.     hierarchy of directories with Imakefiles, you usually only have to run
  546.     xmkmf in the root directory of that hierachy. You can configure the rest
  547.     by typing make Makefiles. This will build the Makefiles in all
  548.     directories in the hierachy. Then you should run "make depend". Don't be
  549.     afraid if include files like stddef.h, varargs.h, ...  are not found,
  550.     they are gcc proprietary header files and therefore not in the standard
  551.     include directories (the Imakefiles use makedepend, not gcc -M).  After
  552.     that you can make the program by running make and you can install it
  553.     (usually in /usr/X386/bin) by running "make install", installing of the
  554.     manpages is done by running make "install.man". Of course, before even
  555.     making xmkmf, you should have read the documentation that comes usually
  556.     with such packages.
  557.  
  558.  
  559. 7.  Programming in X
  560.  
  561.     If you want to write programs that use the X Window System, you should
  562.     get some books on the X Window System.  Most Subroutines provided by X
  563.     are documented in a manpage (residing in /usr/X386/man/man3), but these
  564.     will not provide enough information on programming in X if you do not
  565.     know some generals about X.
  566.    
  567.     There is a rather complete series on X by O'Reilly, called "The
  568.     definitive Guides to the X Window System", consisting of many volumes
  569.     (you will probably not need all of them). For more information check out
  570.     the O'Reilly and Associates Catalog from anonymous FTP on ftp.ora.com.
  571.     I suggest reading Volume 1, "Xlib Programming Manual", and Volume 4, "X
  572.     Toolkit Intrinsics Programming Manual", if you are serious about writing
  573.     X apps. As it turns out Xt (volume 4) is used for most X applications,
  574.     and you only need low-level Xlib stuff (volume 1) for certain things.
  575.  
  576. 8. Finding information on X on the net.
  577.  
  578.     For general X questions you should read the FAQ and the Xt-FAQ from the
  579.     comp.windows.x newsgroup (you can achieve them
  580.         from ftp.x.org in the directory /contrib or 
  581.         from rtfm.mit.edu in /pub/usenet_by_hierarchy/comp/windows/x 
  582.     by anonymous ftp). 
  583.     This is the newsgroup for general X questions.
  584.  
  585.     If you have questions on the XFree86 package and cannot find an answer
  586.     in the documentation files (XFree86, Xconfig, XF86_* manpages or the
  587.     README files in /usr/X386/lib/X11/etc) you may want to post a question
  588.     to a newsgroup. The appropriate newsgroup for that purpose is
  589.     comp.windows.x.i386unix, as this newsgroup is dedicated to the XFree86
  590.     system.  If you have a problem with the server and want to post a
  591.     question to this newsgroup, you should provide enough information for
  592.     those that want to help you. It is no good idea telling: XFree86 is not
  593.     working, what do I have to do? Here some things that should be included
  594.     in all postings that are concerned with server problems: 
  595.  
  596.       - which Operating System and which release of it are you running
  597.       - which hardware do you have (at least bus type (ISA/EISA/VLB), graphic 
  598.         card (including chipset, video RAM type (D/VRAM), size and speed))
  599.       - a concise decription of the problem
  600.       - a printout of the server startup (you can generate that by
  601.         redirecting the stderr output)
  602.       - the used parts of the Xconfig (It is NOT a good idea to include all
  603.         lines commented out by a leading #, as this then will be the largest
  604.         part of your post and most people will already know the copyright 
  605.         statements :-)
  606.  
  607.     Furthermore you should say what steps of trouble-shooting you already 
  608.     did (there are some mentioned in the XFree86 documentation files and in 
  609.     the Appendix).
  610.  
  611.     There are some other newsgroups that cover X related topics:
  612.       comp.windows.x.apps - for X applications
  613.       comp.windows.x.intrinsics - for X intrinsic 
  614.       comp.windows.x.motif - for the Motif(TM) extension to X
  615.       comp.windows.open-look - for OpenLook(TM) and the xview extensions to X
  616.  
  617.     Note that some of these groups have FAQ lists that are posted regularly
  618.     to the groups. As always with regular postings these can be obtained
  619.     from rtfm.mit.edu via anonymous ftp.
  620.  
  621.     Please do not post X related questions to _any_ newsgroup of the
  622.     comp.os.linux.* hierarchy. You will get better answers to your questions
  623.     in those newsgroups dedicated to those questions, as nearly all those
  624.     questions are not linux-specific.
  625.  
  626. Appendix: Some Questions & Answers
  627.  
  628. Q: I started X by running 'X'. I get the stippled background, but no window
  629.    at all. What am I doing wrong?
  630. A: Running X starts only the server, no window-manager and no applications.
  631.    The usual way to start X is running 'startx'.
  632.  
  633. Q: I used XS3 up to now, what changed in XFree86-2.0
  634. A: The most important things that changed, are described in the README.XS3
  635.    file coming with XFree86-2.0.
  636.  
  637. Q: Is there support for 16-bit or 24-bit colour modes?
  638. A: No, there is only support for 1-bit, 4-bit and 8-bit colour in the moment.
  639.    The 4-bit server is in addition in an experimental stage, so there
  640.    are bugs and problems using it. Most of the known problems are
  641.    mentioned in the manpage.
  642.  
  643. Q: I have a Logitech serial mouse but it does not work with the Logitech
  644.    keyword.
  645. A: The Logitech keyword is for older Logitech serial mice, more recent 
  646.    Logitech serial mice use the MouseMan or MicroSoft keyword.
  647.    Logitech serial mice plugged into a ps/2 port use the ps/2 keyword.
  648.  
  649. Q: My server is unable to find some of the fonts.
  650. A: First check that the directories in the font path in 
  651.    /usr/X386/lib/X11/Xconfig are named correctly and contain fonts. If that
  652.    is the case, running mkfontdir in all of those directories may help you.
  653.  
  654. Q: I have the problem that the fonts are not restored correctly after
  655.    leaving X. My screen looks totally garbled.
  656. A: This is not yet completely resolved. There are utilities called 
  657.    runx , restoretext,... coming with svgalib (sunsite:/pub/Linux/libs)
  658.    that help sometimes.
  659.  
  660. Q: I had a normal SVGA card up to now with 1 MB of video RAM. With it
  661.    I could do a virtual resolution of 1152x900 or 1024x1024. Why does
  662.    it not work on my new s3 card?
  663. A: All but the most recent revisions of the s3 chips cannot use a line
  664.    length of 1152, so a length of 1280 is used for this resolution. 
  665.    Furthermore the s3 server needs 1k for the cursor, so a virtual 
  666.    resolution using 1MB will not work.
  667.    NOTE, that you will need some memory on the graphics card for font
  668.    and pixmap caching if you want to get maximum performance from your
  669.    graphic card. So the memory is NOT wasted, but will get you a great
  670.    performance boost. Try running some font or pixmap specific
  671.    mode of x11perf with maximal allowed virtual resolution (e.g. 
  672.    1024x1023) and with 1024x768 and compare the results!
  673.    Recommended resolutions are 1024x768 and 1152x800 for 1MB cards.
  674.    The latter resolution leaves not too much memory to the font cache,
  675.    so you will have a performance loss using large fonts.
  676.    For normal use with fonts <= 18 points it should be OK, though.
  677.  
  678. Q: I have a s3 card and it does not work properly. The screen gets
  679.    distorted when dragging windows and it frequently locks up.
  680. A: First try to use options nomemaccess or nolinear. If both does not help
  681.    and you have a s3 928, try specifying chipset s3_generic in your 
  682.    Xconfig. If nothing helps, it might be a incompatibility
  683.    problem between your graphic card and your motherboard. Try to see if the
  684.    card works in a different system, if you can get your hands.
  685.  
  686. Q: I have a s3 Localbus card and the server cannot find a high memory 
  687.    area. Then it disables direct memory access. What should i do?
  688. A: There are some strange problems with Localbus cards. It is being worked
  689.    upon. Put option "nolinear" _and_ option "memaccess" into your Xconfig
  690.    file. This will enable to use the 64k aperture that is supported
  691.    even for ISA cards. This will furthermore prevent the following problem:
  692.    Due to a bug in the linear frame buffer code, the s3 processor is 
  693.    not reset correctly, once a large (i.e. >= 1024k) linear frame buffer 
  694.    is found. Thus the server will not work after that if it fails to  
  695.    find the high memory area until a hard reset is sent to the chip (i.e. 
  696.    even a normal reboot will not reset the system). 
  697.  
  698. Q: I have a WD90C3x based graphic card. XFree86 seems not to probe the
  699.    clocks correctly. What can I do?
  700. A: Yup, there is a bug in the clock probing code in XFree86-2.0. It is
  701.    not in XFree86-1.3. So run the XF86_SVGA server from 1.3 just to probe
  702.    the clocks and put the probed clocks into your Xconfig file. After that
  703.    the XF86_SVGA server from 2.0 will get the right clocks. The XFree86-1.3
  704.    package can still be found on tsx-11 and sunsite.
  705.  
  706. Q: I have a Diamond Viper card. Why does it not work?
  707. A: In addition to being a Diamond product, this card is based on the
  708.    P9000 chip by Weitek. This chip is not yet supported by XFree86, so
  709.    you have only a chance to get it working with one of the generic 
  710.    servers (i.e. Mono or VGA16). You will have nevertheless the clock
  711.    setting problem that prevents the other diamond cards from working.
  712.  
  713. Q: I have a card with the Compaq AVGA chip. It does not work.
  714. A: Yes, the AVGA support seems to be completely broken in 2.0. Please
  715.    get the SVGA server from the XFree86-1.3 distribution. This should
  716.    work.
  717.  
  718. Q: Are there some notes on tuning the performance of my X system?
  719. A: Yes there are. They are posted monthly to the comp.windows.x
  720.    newsgroup and can also be found on rtfm.mit.edu in the 
  721.    appropriate subdirectory.
  722.  
  723. Q: I want to reconfigure my XF86_S3 or XF86_VGA16 server using the LinkKit.
  724.    After editing sited.def and running mkmf, make will not work. 
  725. A: There is a little bug in the Imakefile for the LinkKit. You can either
  726.    change the line 326 in the Imakefile from
  727.    #if XF86SVGAServer || XF86MonoServer
  728.    to
  729.    #if XF86SVGAServer || XF86MonoServer || XF86VGA16Server || XF86S3Server
  730.    or you can configure the XF86_Mono or XF86_SVGA server additionally for 
  731.    building. Then all will work.
  732.  
  733. Q: I have a SPEA/Video 7 Mercury card. It is 928 based but I cannot
  734.    get it working correctly.
  735. A: The Mercury uses a clock chip that is not yet supported by XFree86.
  736.    So you cannot use it at the moment. This will (probably) be solved in
  737.    the next XFree86 release.
  738.  
  739. Q: I have a busmouse and am running selection. The server has problems with 
  740.    recognizing the mouse.
  741. A: Selection has some problems with busmice. XFree86 cannot open the mouse 
  742.    device if selection is running on it. So kill selection before staring
  743.    XFree86.
  744.  
  745. Q: The server dies with the message "Cannot find a free VT".
  746. A: XFree86 needs a free VT to run on. So if you have put a getty process on
  747.    every virtual console in you /etc/inittab, XFree86 will not be able
  748.    to start. I suggest to let /dev/tty8 (for kernel messages) and /dev/tty7
  749.    (for XFree86) free of a getty process.
  750.  
  751. Q: Why is the XF86_Mono server not working with my hercules card, I
  752.    thought this card was supported?
  753. A: The hercules driver (as well as the BDM2 driver) is not part of 
  754.    XF86_Mono by default. Get the LinkKit and you can include it.
  755.    You will need about 4 MB free disk space and about 5 minutes for
  756.    building the server (on a 486/30).
  757.    No version of XFree86 up to at least 2.0 properly sets a Hercules
  758.    mono display when switching to text mode (such as when you switch
  759.    VTs or exit from XFree86). You will therefore also want to make a
  760.    small change to the Linux kernel to work around this problem. If
  761.    you have a kernel version 0.99.15 or later, you can edit the file
  762.    "console.c" in the kernel source directory "linux/drivers/char/"
  763.    by adding the line:
  764.         #define CONFIG_HGA
  765.    near the top of the file. Alternatively, you can add the line:
  766.         bool 'Hercules monochrome display support' CONFIG_HGA y
  767.    to "linux/config.in" (then do a 'make config'). Re-make the kernel,
  768.    install it, and re-boot.
  769.    This change to the kernel ensures that the Hercules display is always
  770.    in text mode immediately after a VT switch. This feature is worth
  771.    having, even if future versions of XFree86 do not have the text-mode
  772.    switching problem.
  773.  
  774. Q: I cannot get a working 1280x1024 interlaced mode on my S3 card.
  775. A: Yes, that's true. It does not work in the moment. Read README.late
  776.    to fix it.
  777.  
  778. Q: I have severe problems with getting a mode on my new (805 rev. D or
  779.    928 rev. E) S3 graphic card with pixel clocks higher than 65MHz.
  780. A: There seems to be a problem with some undocumented S3 registers
  781.    that come with these new chips. It is worked upon and should be
  782.    fixed in the next release. 
  783.  
  784. Q: When will be the next XFree86 release?
  785. A: This cannot be said at the moment. If a new version is released,
  786.    you will hear early enough of it.
  787.  
  788. Q: The server tells me that I cannot use a higher clock frequency 
  789.    than 80 MHZ (ATI Mach32) or 85MHz (S3 928). The docs of the card tell me
  790.    that it is possible to do far more.
  791. A: This comes from problems with the RAMDAC code that does not support
  792.    some RAMDACs completely yet. These are the RAMDACs for the ATI Mach32 
  793.    cards and the Bt485 and its clones for S3 cards. Therefore the pixel 
  794.    clock gets restricted to sane settings. This will be fixed in the next 
  795.    release.
  796.    There are other High-End RAMDACs that suffer from the same restriction.
  797.    In general you should not use any clock higher than 85MHz if your
  798.    RAMDAC can handle pixel clocks higher than 110MHz. 
  799.  
  800. There are a lot strange phenomena reported that cannot be handeled here.
  801. If your card has a switch for bus waitstates, it helps in many cases
  802. to put this to the 1WS setting. You should also look at the remarks
  803. above on setting some BIOS values. As many reports (especially on BIOS
  804. setting) are contradicting, you should try several settings.
  805.  
  806. ------------------------- Copying conditions ---------------------------------
  807.  
  808.     Copyright Helmut Geyer 1994
  809.  
  810. A verbatim copy of the XFree86-HOWTO may be reproduced and distributed in 
  811. any medium physical or electronic without permission of the author. 
  812. Translations works are similarly permitted without express permission if it 
  813. includes a notice on who translated it. Commercial redistribution is allowed 
  814. and encouraged; however, the author would like to be notified of any such 
  815. distributions. 
  816.  
  817. Short quotes may be used without prior consent by the author. Derivative work
  818. and partial distributions of this HOWTO have to either include a verbatim
  819. copy of this file or make a verbatim copy of this file available. If the 
  820. latter is the case, a pointer to the verbatim copy must be stated at a 
  821. clearly visible place. If you want to do either of the last possibilities,
  822. you should contact the author.
  823.  
  824. In short, we wish to promote dissemination of this information through as
  825. many channels as possible. However, we do wish to retain copyright on the
  826. HOWTO documents, and would like to be notified of any plans to redistribute
  827. the HOWTOs. We further want that ALL information provided in the HOWTOs is 
  828. disseminated. If you have questions, please contact Matt Welsh, the Linux
  829. HOWTO coordinator, at mdw@sunsite.unc.edu, or +1 607 256 7372.
  830.  
  831.            --------------- Trademarks -------------------  
  832.  
  833. XFree86 is a trademark of The XFree86 Project, Inc.
  834. Motif is a trademark of the Open Software Foundation.
  835. SUN and Open Windows is a trademark od SUN Microsystems.
  836. Open Look is a trademark of AT&T.
  837.  
  838. ------------------------------------------------------------------------------
  839. Helmut Geyer                              geyer@kalliope.iwr.uni-heidelberg.de
  840.  
  841.  
  842.  
  843.